using System;
using System.Collections.Generic;
using System.Text;

namespace LeisureCenter.Api
{
    public interface IPlayer
    {
        IMedia CreateMedia(string fileName, MediaKind kind);
    }

    public abstract class BasePlayer : IPlayer
    {
        #region IPlayer implementation

        public abstract IMedia CreateMedia(string fileName, MediaKind kind);

        #endregion
    }

    [AttributeUsage(AttributeTargets.Class)]
    public sealed class AudioCdPlayerAttribute : Attribute
    {
    }

    [AttributeUsage(AttributeTargets.Class)]
    public sealed class VideoDvdPlayerAttribute : Attribute
    {
    }

    public interface IPlayersManager
    {
        void RegisterPlayer(string name, IPlayer player);
        void UnRegisterPlayer(string name);

        IPlayer this[string name] { get; }

        IPlayer AudioCdPlayer { get; }
        IPlayer VideoDvdPlayer { get; }
    }
}
